Programs are customized for a variety of purposes. Just by way of example, a core product may be customized to meet the needs of a particular customer, to update an aspect to suit a specific environment, etc. Traditional systems typically only employ a single layer of customization to facilitate the foregoing customization. Specifically, by including such single customization layer, any particular aspect of the core product may be customized for any one of a variety of reasons.
Despite the benefits associated with such single customization layer, some drawbacks exist. For example, when a common code is developed in the customization layer and a customer needs to customize the same, such customer account may replicate the common code and apply customizations to such code. If, however, changes are later made to the common customization code, they have to be reapplied to each customer account that customized it.
There is thus a need for overcoming these and/or other problems associated with the prior art.